package li.kaeppe.travel.tracker.dao;

import java.util.List;

import li.kaeppe.travel.tracker.domain.Trip;
import li.kaeppe.travel.tracker.domain.WayPoint;

public interface WayPointDao {

	public WayPoint storeWayPoint(WayPoint point);
	
	public void storeWayPoints(List<WayPoint> points);
	
	public List<WayPoint> getAllWayPoints();
	
	public List<WayPoint> getAllWayPoints(Trip trip);
	
	public List<WayPoint> getAllWayPoints(long tripId);
	
	public void deleteWayPoint(WayPoint point);
	
	/** 
	 * Returns the next page of waypoint including the last way point
	 * of the previous page. 
	 */
	public List<WayPoint> getPagedWayPoints(String tripKey, Integer pageNumber);
	
	public List<WayPoint> getPagedWayPoints(String tripKey, Integer pageNumber, int level);
	
	public WayPoint getWayPointById(long wayPointId);
}
